package com.ruoyi.warehousing.service;

import com.ruoyi.monthlyInventory.domain.MonthlyInventoryLog;
import com.ruoyi.product.domain.Product;
import com.ruoyi.product.domain.ProductModel;
import com.ruoyi.sale.domain.SaleGoodsModel;
import com.ruoyi.warehousing.domain.WarehouseStatisticsVo;
import com.ruoyi.warehousing.domain.Warehousing;
import com.ruoyi.warehousing.domain.WarehousingRecords;

import java.util.List;

public interface WarehousingService {

    /**
     * 查询产品信息
     *
     * @return 结果集
     */
    List<Product> selectProductToWar(Product product);
    List<WarehouseStatisticsVo> selectProductToWar_new(WarehouseStatisticsVo vo);


    List<SaleGoodsModel> selectTendency();

    SaleGoodsModel selectCycle(SaleGoodsModel saleGoodsModel);


    /**
     * 查询产品信息
     *
     * @return 结果集
     */
    List<Warehousing> selectWarehousingDetail(Warehousing warehousing);

    /**
     * 查询库存信息
     *
     * @return 结果
     */
    List<Warehousing> selectWarehousingToProduct(Warehousing warehousing);


    /**
     * 查询库存信息
     *
     * @return 结果
     */
    List<Warehousing> selectWarehousingDe(String keyIm);

    /**
     * 查询产品信息
     *
     * @return 结果集
     */
    List<WarehousingRecords> selectWarehousingRecords(WarehousingRecords warehousingRecords);

    /**
     * 查询库存预警信息
     *
     * @return 结果
     */
    List<Warehousing> selectWarehousingWarning();

    /**
     * 查询库存滞销信息
     *
     * @return 结果
     */
    List<Warehousing> selectWarehousingMore();

    /**
     * 查询库存信息
     *
     * @return 结果
     */
    List<WarehousingRecords> selectWarehousingRecordsAll();

    void calculation(MonthlyInventoryLog monthlyInventoryLog);

    /**
     * 查询库存信息
     *
     * @param warehousing 查询条件
     * @return 结果
     */
    Warehousing selectWarehousing(Warehousing warehousing);

    /**
     * 更新库存
     *
     * @param warehousing 入库信息
     * @return
     */
    int updateWarehousing(Warehousing warehousing);

    /**
     * 插入库存 入库数据 统计信息
     *
     * @param warehousingRecords 库存信息
     * @return 结果
     */
    int insertWarehousingRecords(WarehousingRecords warehousingRecords);

}
